Multiresolution Priority Queues
نویسندگان
چکیده
Priority queues are container data structures essential to many high performance computing applications. In this paper, we introduce multiresolution priority queues , a data structure that achieves greater performance than the standard heap based implementation by trading off a controllable amount of resolution in the space of priorities. The new data structure can reduce the worst case performance of inserting an element from to (log(n)) O , where is the number of elements in the queue (log(r)) O n and is the number of resolution groups in the priority space. r The worst case cost of extracting the top element is . (1) O When the number of elements in the table is high, the amortized cost to insert an element becomes . (1) O 1. Iɴᴛʀᴏᴅᴜᴄᴛɪᴏɴ Priority queues are a type of container data structures designed to guarantee that the element at the front of the queue is the greatest of all the elements it contains, according to some total ordering defined by their priority . This allows for elements of higher priority to be extracted first, independently of the order in which they are inserted into the queue. Fast implementations of priority queues are important to many high performance computing (HPC) applications and hence optimizing their performance has been the subject of intense research. In graph searching, the algorithmic complexity of essential algorithms such as finding the shortest path between two nodes in a graph rely entirely on the performance of a priority queue (see for instance Dijkstra’s algorithm [1] , [2] ). Other essential applications are found in the field of bandwidth management. For instance, in the Internet, routers often have insufficient capacity to transmit all packets at line rate and so they use priority queues in order to assign higher preference to those packets that are most critical in preserving the quality of experience (QoE) of the network (e.g., packets carrying delay sensitive data such as voice). Priority queues are also important in other areas of research including Huffman compression codes, operating systems, Bayesian spam filtering, discrete optimization, simulation of colliding particles, or artificial intelligence to name some examples. The work we present stems from research on improving the performance of a priority queue by introducing a trade-off to exploit an existing gap between the applications’ requirements and the set of priorities supported by a priority queue. With this objective, we introduce the concept of multiresolution priority queue , a new container data structure that can flexibly trade off a controllable amount of resolution in the space of priorities in exchange for achieving greater performance. A simple example works as follows. Suppose that we use a priority queue to hold jobs that need job , , ..., job } { 1 job2 n to be scheduled using a “shortest job first” policy. Each job takes a time to process equal to , and the removal jobi pi of an element from the queue returns the job with the smallest processing time . (Hence determines in{p } m i pi the priority of each job.) A common approach is to use a binary heap based implementation of a priority queue, which effectively provides support for all possible range of priorities in the space of real numbers . Assume now pi that the set of possible priority values is discretized into pi subsets and that the application only requires l guaranteeing the ordering between elements belonging to different subsets. A multiresolution priority queue is a data structure that can provide better performance than a standard priority queue by supporting the coarser grained resolution space consisting of subsets rather than the l complete set of priorities. Multiresolution priority queues can also be understood as a generalization of standard priority queues in which the total ordering requirement imposed on the set of priorities is relaxed, allowing for elements in the queue to be only partially ordered. Hence an alternative name to refer to this type of container data structures would be partial order priority queues. This paper is organized as follows. In Section 2, we summarize some of the main historical results in the research area of high performance priority queues. Section 3 presents the body of our work, introducing a formal definition of the concept of multiresolution priority queues , providing pseudocode for the main routines to insert and extract elements from the queue, and analyzing the algorithm’s complexity. This section introduces also two variants of the base algorithm to support sliding priority windows for applications such as event-driven simulators and a binary tree based optimization applicable to general graph algorithms such as finding the shortest path between two nodes. Section 4 describes our implementation of a multiresolution priority queue and demonstrates how it can help a real world HPC application achieve greater performance than a traditional binary heap based solution.
منابع مشابه
Algorithms and Data Structures to Accelerate Network Analysis
As the sheer amount of computer generated data continues to grow exponentially, new bottlenecks are unveiled that require rethinking our traditional software and hardware architectures. In this paper we present five algorithms and data structures (long queue emulation, lockless bimodal queues, tail early dropping, LFN tables, and multiresolution priority queues) designed to optimize the process...
متن کاملExperimental Study of High Performance Priority Queues
The priority queue is a very important and widely used data structure in computer science, with a variety of applications including Dijkstra’s Single Source Shortest Path algorithm on sparse graph types. This study presents the experimental results of a variety of priority queues. The focus of the experiments is to measure the speed and performance of highly specialized priority queues in out-o...
متن کاملSchedulability Comparisons between Priority Queue and FIFO Queue for CAN Messages with Offsets
The Controller Area Network (CAN) is a widely used in-vehicle network and its schedulability is particularly important. In a CAN system, implementing the priority queues is better than FIFO queues with respect to the schedulability, which is widely recognized by users. In this paper, we investigate whether and how much implementing the priority queues is better than FIFO queues when the offset ...
متن کاملPriority Queues on Parallel Machines
We present time and work optimal priority queues for the CREW PRAM, supporting FindMin in constant time with one proces-and DecreaseKey in constant time with O(log n) processors. A priority queue can be build in time O(log n) with O(n= log n) processors and k elements can be inserted into a priority queue in time O(log k) with O((log n + k)= log k) processors. With a slowdown of O(log log n) in...
متن کاملMultiQueues: Simpler, Faster, and Better Relaxed Concurrent Priority Queues
Priority queues with parallel access are an attractive data structure for applications like prioritized online scheduling, discrete event simulation, or branchand-bound. However, a classical priority queue constitutes a severe bottleneck in this context, leading to very small throughput. Hence, there has been significant interest in concurrent priority queues with a somewhat relaxed semantics w...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- CoRR
دوره abs/1705.09642 شماره
صفحات -
تاریخ انتشار 2017